module.exports = function() {
  var observerSet = [];
  // var _self = this;
  /**
   * 添加观察者
   * @param  {[type]} observer [观察者]
   */
  this.attach = function(observer) {
    observerSet.push(observer);
  };
  /**
   * 删除观察者
   * @param  {[type]} observer [观察者]
   */
  this.detach = function(observer) {
    if (observerSet[observer]) {
      delete observerSet[observer];
    }
    console.log('该观察者不存在！');
  };
  /**
   * 被观察执行一些事情并通知观察者更新状态
   * @return {[type]} [description]
   */
  this.doAction = function() {
    console.log('被观察者执行一些事情！');
    // 通知所有观察者更新状态
    // _self.notifyAllObservers();
    notifyAllObservers();
  };
  /**
   * 执行所有观察者的update方法
   * @return {[type]} [description]
   */
  // this.notifyAllObservers = function() {
  var notifyAllObservers = function() {
    for (var key in observerSet) {
      observerSet[key].update();
    }
  };
};
